/*
* 编一个程序，读入用户输入的一串先序遍历字符串，根据此字符串建立一个二叉树（以指针方式存储）。
*  例如如下的先序遍历字符串： ABC##DE#G##F### 其中“#”表示的是空格，空格字符代表空树。建立起此二叉树以后，再对二叉树进行中序遍历，输出遍历结果。
* https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef?tpId=60&&tqId=29483&rp=1&ru=/activity/oj&qru=/ta/tsing-kaoyan/question-ranking
* */
import java.util.Scanner;
class TreeNode{
    char val;
    TreeNode left;
    TreeNode right;
    public  TreeNode(char val){
        this.val=val;
    }
}
public class Main{
    public static int i=0;
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        while(scanner.hasNextLine()){
            String str=scanner.nextLine();
            TreeNode root=createTree(str);
            inorder(root);
        }
    }
    public static TreeNode createTree(String str){
        TreeNode root=null;
        if(str.charAt(i)!='#'){
            root=new TreeNode(str.charAt(i));
            i++;
            root.left=createTree(str);
            root.right=createTree(str);
        }else{
            i++;
        }
        return root;
    }
    public static void inorder(TreeNode root){
        if(root==null){
            return ;
        }
        inorder(root.left);
       System.out.print(root.val+" ");
        inorder(root.right);
    }
}